package mysql

import (
	"gorm.io/gorm"
)

type VideoWorks struct {
	gorm.Model
	Title          string `gorm:"type:varchar(100);comment:标题;default:NULL;" json:"title"`              // 标题
	Desc           string `gorm:"type:varchar(255);comment:描述;default:NULL;" json:"desc"`               // 描述
	MusicId        int32  `gorm:"type:int;comment:选择音乐;default:NULL;" json:"music_id"`                // 选择音乐
	WorkType       string `gorm:"type:varchar(20);comment:作品类型;default:NULL;" json:"work_type"`       // 作品类型
	CheckStatus    string `gorm:"type:varchar(10);comment:审核状态;default:NULL;" json:"check_status"`    // 审核状态
	IpAddress      string `gorm:"type:varchar(20);comment:IP地址;default:NULL;" json:"ip_address"`        // IP地址
	WorkPermission string `gorm:"type:varchar(20);comment:作品权限;default:NULL;" json:"work_permission"` // 作品权限
	LikeCount      int32  `gorm:"type:int;comment:喜欢数量;default:NULL;" json:"like_count"`              // 喜欢数量
	CommentCount   int32  `gorm:"type:int;comment:评论数;default:NULL;" json:"comment_count"`             // 评论数
}

func (w *VideoWorks) List() (list []*VideoWorks, err error) {
	err = DB.Debug().Find(&list).Error
	if err != nil {
		return nil, err
	}
	return
}

func (w *VideoWorks) Create() error {
	return DB.Debug().Create(&w).Error
}

func (w *VideoWorks) Find(title string) (list []*VideoWorks, err error) {
	err = DB.Debug().Where("title =?", title).Find(&list).Error
	if err != nil {
		return nil, err
	}
	return
}

func (w *VideoWorks) Update(status string) error {
	return DB.Debug().Table("video_works").Update("check_status=?", status).Error
}

func (w *VideoWorks) Finds(status string) error {
	return DB.Debug().Where("check_status=?", status).Find(&w).Error
}

func (w *VideoWorks) GetFindById(id int64) error {
	return DB.Debug().Where("id=?", id).Find(&w).Error
}

func (w *VideoWorks) GetDel(id int64) error {
	return DB.Debug().Where("id=?", id).Delete(&w, id).Error
}
